home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
LOGIC Apps
/
Logic-APPLE_II_APPS.iso
/
pc
/
LOGIC Apple II 5.25" Library - DOS Part 7
/
DOS203A.dsk
/
DMFE.LIST.txt
< prev
next >
Wrap
Text File
|
2012-02-16
|
18KB
|
851 lines
10 REM ************************
20 REM *DOT MATRIX FONT EDITOR*
30 REM * BY R. GLENN JONES *
40 REM * COPYRIGHT (C) 1986 *
50 REM * BY R. GLENN JONES *
60 REM * DON MILLS, ONT,CAN *
70 REM ************************
80 GOTO 3290
90 REM
100 REM GET COMMAND
110 REM
120 XDRAW CR AT CX,CY
130 VTAB N5
: HTAB C
: PRINT "COMMAND =>";
: VTAB N5
: HTAB N1
: POKE - 16368,B
: GET CMD$
140 XDRAW CR AT CX,CY
150 I1 = B
160 FOR I = C TO LEN (CD$)
170 IF CMD$ = MID$ (CD$,I,C) THEN I1 = I
: I = LEN (CD$)
180 NEXT
190 IF I1 > 17 THEN CALL CVERT,R,LE,CH$(B)
200 ON I1 GOSUB 600,710,660,810,760,860,920,960,1000,1060,1180,1250,1320,1680,1740,1800,1890,1990,2250,4090
210 GOTO 120
220 REM
230 REM UPDATE DISPLAY
240 REM
250 HCOLOR= HC
260 DRAW DOT AT CX,CY
270 TX = CX / K - N3
: TY = CY / N0 - K
280 DRAW SMDOT AT TX + OF,(TY * D) + OF
290 IF TY = C THEN CH$(TX) = DT$ + MID$ (CH$(TX),TY + C)
300 IF TY = Q THEN CH$(TX) = LEFT$ (CH$(TX),TY - C) + DT$
310 IF TY > C AND TY < Q THEN CH$(TX) = LEFT$ (CH$(TX),TY - C) + DT$ + MID$ (CH$(TX),TY + C)
320 HCOLOR= E
330 RETURN
340 REM
350 REM INIT CHARACTER
360 REM
370 FOR H = C TO N1
380 CH$(H) = "00000000"
390 NEXT H
400 RETURN
410 REM
420 REM WINDOW 1
430 REM
440 POKE N9,D
: POKE N9 + C,N9 + K
: POKE N9 + D,E
: POKE N9 + E,N8
450 RETURN
460 REM
470 REM WINDOW 2
480 REM
490 POKE N9,B
: POKE N9 + C,N6
: POKE N9 + D,N4
: POKE N9 + E,N5
500 RETURN
510 REM
520 REM STRING PRINT
530 REM
540 SPEED= 175
: HTAB (N6 - LEN (HD$)) / D
: FOR G = C TO LEN (HD$)
: PRINT MID$ (HD$,G,C);
: Z = PEEK ( - 16336) + PEEK ( - 16336)
: FOR H = C TO 20
: NEXT
: NEXT
: SPEED= 255
: FOR H = C TO 1000
: NEXT
: RETURN
550 REM
560 REM CURSOR ROUTINES
570 REM
580 REM UP
590 REM
600 CY = CY - N0
610 IF CY < TC THEN CY = BC
620 RETURN
630 REM
640 REM LEFT
650 REM
660 GOSUB 710
: IF CX < > EC THEN GOSUB 710
670 RETURN
680 REM
690 REM LEFT HALF STEP
700 REM
710 CX = CX - K
: IF CX < SC THEN CX = EC
720 RETURN
730 REM
740 REM RIGHT
750 REM
760 GOSUB 810
: IF CX < > SC THEN GOSUB 810
770 RETURN
780 REM
790 REM RIGHT HALF STEP
800 REM
810 CX = CX + K
: IF CX > EC THEN CX = SC
820 RETURN
830 REM
840 REM DOWN
850 REM
860 CY = CY + N0
870 IF CY > BC THEN CY = TC
880 RETURN
890 REM
900 REM PLOT
910 REM
920 DT$ = "1"
: HC = E
: GOSUB 250
: RETURN
930 REM
940 REM UNPLOT
950 REM
960 DT$ = "0"
: HC = B
: GOSUB 250
: RETURN
970 REM
980 REM CLEAR CHARACTER
990 REM
1000 GOSUB 370
1010 HCOLOR= B
: CALL HK
1020 RETURN
1030 REM
1040 REM FILL CHARACTER
1050 REM
1060 HCOLOR= B
: CALL HK
: GOSUB 370
: HCOLOR= E
1070 FOR H = SC TO EC STEP N0
1080 FOR G = TC TO BC STEP N0
1090 DRAW DOT AT H,G
1100 DRAW SMDOT AT ((H / K) - N3) + OF,(((G / N0) - K) * D) + OF
1120 NEXT G
1110 CH$((H / K) - N3) = "11111111"
1130 NEXT H
1140 RETURN
1150 REM
1160 REM GET NEXT CHARACTER
1170 REM
1180 CALL CVERT,R,LE,CH$(B)
1190 LE = LE + C
1200 GOSUB 1450
1210 RETURN
1220 REM
1230 REM GET PREVIOUS CHARACTER
1240 REM
1250 CALL CVERT,R,LE,CH$(B)
1260 LE = LE - C
1270 GOSUB 1450
1280 RETURN
1290 REM
1300 REM GET CHARACTER TO EDIT
1310 REM
1320 CALL CVERT,R,LE,CH$(B)
1330 HOME
1340 LE$ = NL$
: VTAB N5
: HTAB C
: PRINT "GET CHR =>";:
1350 FOR I = C TO F
1360 HTAB N1 + I
: GET TE$
1370 IF TE$ = R$ THEN I = F
: HOME
1380 IF TE$ = CHR$ (8) THEN 1330
1390 PRINT TE$;
1400 LE$ = LE$ + TE$
1410 NEXT
1420 IF LEFT$ (LE$,C) = "#" AND LEN (LE$) > C THEN LE = ABS ( VAL ( MID$ (LE$,D)))
: GOTO 1450
1430 IF LEFT$ (LE$,C) = "#" AND LEN (LE$) = C THEN LE$ = CHR$ (35)
1440 LE = ASC (LE$)
1450 IF LE < N9 OR LE > CS THEN GOTO 1330
1460 CALL CVERT,W,LE,CH$(B)
1470 CW$ = MID$ (CH$(B),D,C)
1480 VTAB N3
: HTAB N2
: PRINT RIGHT$ ("000" + STR$ (LE),E)
1490 POKE SL,EC
: IF LE < N7 THEN POKE SL,LE + N7
1500 IF LE > EC THEN POKE SL,LE
1510 VTAB N3
: HTAB N6
: PRINT RIGHT$ (CH$(B),C)
1520 VTAB N4
: HTAB N2
: PRINT " ";
1530 VTAB N4
: HTAB N2
: PRINT MID$ (CH$(B),E,E);
1540 IF MID$ (CH$(B),E,E) = NN$ THEN PRINT "+";CW$
1550 VTAB N4
: HTAB N6
: PRINT LEFT$ (CH$(B),C)
1560 HOME
1570 HCOLOR= B
: CALL HK
: HCOLOR= E
1580 FOR H = C TO N1
1590 FOR G = C TO Q
1600 IF VAL ( MID$ (CH$(H),G,C)) = C THEN DRAW DOT AT (H + N3) * K,(G + K) * N0
: DRAW SMDOT AT H + OF,(G * D) + OF
1610 NEXT G,H
1620 X = (X + C) * (X < L1)
1630 IF X = B THEN XX = FRE (0)
1640 RETURN
1650 REM
1660 REM TOGGLE DESCENDER Y/N
1670 REM
1680 IF LEFT$ (CH$(B),C) = YY$ THEN CH$(B) = N$ + RIGHT$ (CH$(B),K)
: VTAB N4
: HTAB N6
: PRINT N$;
: RETURN
1690 IF LEFT$ (CH$(B),C) = N$ THEN CH$(B) = YY$ + RIGHT$ (CH$(B),K)
: VTAB N4
: HTAB N6
: PRINT YY$;:
1700 RETURN
1710 REM
1720 REM TOGGLE DOWNLOADABLE Y/N
1730 REM
1740 IF RIGHT$ (CH$(B),C) = YY$ THEN CH$(B) = LEFT$ (CH$(B),K) + N$
: VTAB N3
: HTAB N6
: PRINT N$;
: RETURN
1750 IF RIGHT$ (CH$(B),C) = N$ THEN CH$(B) = LEFT$ (CH$(B),K) + YY$
: VTAB N3
: HTAB N6
: PRINT YY$;:
1760 RETURN
1770 REM
1780 REM TOGGLE PROPORTIONAL ON/OFF
1790 REM
1800 IF MID$ (CH$(B),E,E) = NN$ THEN CH$(B) = LEFT$ (CH$(B),D) + "OFF" + RIGHT$ (CH$(B),C)
: VTAB N4
: HTAB N2
: PRINT "OFF ";
: RETURN
1810 IF MID$ (CH$(B),E,E) = "OFF" THEN CH$(B) = LEFT$ (CH$(B),D) + NN$ + RIGHT$ (CH$(B),C)
: VTAB N4
: HTAB N2
: PRINT NN$;"+";CW$
1820 HOME
: VTAB N5 - C
: PRINT "CHARACTER WIDTH"
: PRINT "GREATER THAN ACTUAL SIZE (";
: INVERSE
: PRINT YY$;
: NORMAL
: PRINT "/N) ";A2$;
: GET Y$
1830 IF Y$ = YY$ THEN CH$(B) = LEFT$ (CH$(B),C) + "1" + RIGHT$ (CH$(B),F)
: CW$ = "1"
: GOTO 1850
1840 CH$(B) = LEFT$ (CH$(B),C) + "0" + RIGHT$ (CH$(B),F)
: CW$ = "0"
1850 VTAB N4
: HTAB N2
: PRINT NN$;"+";CW$
: HOME
: RETURN
1860 REM
1870 REM CLEAR CHARACTER SET
1880 REM
1890 HOME
1900 VTAB N5
: HTAB C
1910 PRINT PR$;"RETURN TO ";
: INVERSE
: PRINT "ERASE";
: NORMAL
: PRINT " CHARACTER SET =>";
1920 VTAB N5
: HTAB 39
1930 GET Y$
1940 IF Y$ < > R$ THEN HOME
: RETURN
1950 POKE N9 + D,N8 + C
: HOME
: TEXT
: GOSUB 440
: HOME
: POP
: GOTO 3670
1960 REM
1970 REM PRINT CHARACTER
1980 REM
1990 HOME
: PRINT "MAKE SURE DIP SWITCH 1-5 IS OFF"
: PRINT "AND THE PRINTER IS ON";:
2000 FOR I = C TO 2000
: NEXT
: PRINT
: PRINT
2010 PRINT D$;PS$;C
2020 VTAB F
: HTAB K
2030 PRINT DF$;
2040 VTAB N5 - C
2050 FOR I = C TO N1
2060 A = N7
: M = B
2070 FOR J = C TO Q
2080 M = ( VAL ( MID$ (CH$(I),J,C)) * A) + M
: A = A / D
2090 NEXT J
2100 IF PEEK (CL) > N7 - C THEN GOTO 2100
2110 POKE CO,M
2120 NEXT I
2130 PRINT D$;PS$;B
2140 PRINT PR$;"ANY KEY TO PRINT CHARACTER =>";
: GET Y$
2150 HOME
: PRINT
: INVERSE
: PRINT "PRINTING"
: NORMAL
2160 PRINT D$;PS$;C
2170 PRINT UD$
2180 PRINT "A"
2190 PRINT UN$
2200 PRINT D$;PS$;B
2210 RETURN
2220 REM
2230 REM DOS
2240 REM
2250 POKE N9 + D,N8 + C
: HOME
: TEXT
: GOSUB 440
: HOME
: CD$ = "CDSLE"
2260 VTAB N
: INVERSE
2270 HTAB E
: PRINT "C";
: NORMAL
: PRINT "ATALOG"
: INVERSE
: PRINT
2280 HTAB E
: PRINT "D";
: NORMAL
: PRINT "ELETE"
: INVERSE
: PRINT
2290 HTAB E
: PRINT "S";
: NORMAL
: PRINT "AVE"
: INVERSE
: PRINT
2300 HTAB E
: PRINT "L";
: NORMAL
: PRINT "OAD"
: INVERSE
: PRINT
2310 HTAB E
: PRINT E$;
: NORMAL
: PRINT "SCAPE"
: PRINT
2320 PRINT A2$;
: GET DC$
2330 I2 = B
2340 FOR I = C TO K
2350 IF DC$ = MID$ (CD$,I,C) THEN I2 = I
: I = K
2360 NEXT
2370 ON I2 GOSUB 2430,2490,2700,2580
2380 IF I2 = K THEN HOME
: POP
: GOTO 3770
2390 GOTO 2250
2400 REM
2410 REM CATALOG
2420 REM
2430 HOME
: PRINT D$;CA$;SL$;DR$
2440 PRINT
: PRINT PR$;
: INVERSE
: PRINT "ANY";
: NORMAL
: PRINT " KEY TO CONTINUE"
: PRINT
: PRINT A2$;
: GET Y$
2450 RETURN
2460 REM
2470 REM DELETE
2480 REM
2490 HOME
: FI$ = NL$
: VTAB N0
: PRINT "FILE TO DELETE"
: PRINT
2500 INPUT "=>";DE$
2510 IF LEN (DE$) > L1 THEN DE$ = LEFT$ (DE$,L1)
2520 AC$ = "DELETE FILE"
: FI$ = DE$
: AD$ = "DELETE"
: GOSUB 3160
2530 PRINT D$;"DELETE ";DE$;SL$;DR$
2540 RETURN
2550 REM
2560 REM LOAD FILE
2570 REM
2580 HOME
: FI$ = NL$
2590 VTAB N0
: PRINT "LOAD CHARACTER SET"
: PRINT
2600 INPUT "=>";LO$
2610 IF LO$ = "?" THEN HOME
: GOSUB 2430
: GOTO 2580
2620 IF LEN (LO$) > L2 THEN LO$ = LEFT$ (LO$,L2)
2630 LO$ = LO$ + ".SET"
2640 AC$ = "LOAD CHARACTER SET"
: FI$ = LO$
: AD$ = "LOAD"
: GOSUB 3160
2650 PRINT D$;B$;LO$;",A$1580";SL$;DR$
2660 RETURN
2670 REM
2680 REM SAVE
2690 REM
2700 HOME
: VTAB N0
2710 PRINT "SAVE ";A1$;
: INVERSE
: PRINT "C";
: NORMAL
: PRINT "HARACTER SET"
2720 VTAB N1 + C
: HTAB N
: PRINT A1$;
: INVERSE
: PRINT "F";
: NORMAL
: PRINT "ONT FILE"
2730 VTAB 14
: HTAB N
: PRINT A1$;
: INVERSE
: PRINT E$;
: NORMAL
: PRINT "SCAPE"
2740 VTAB 16
: HTAB N
: PRINT A1$;
: GET SA$
2750 IF SA$ = "C" THEN GOSUB 2820
2760 IF SA$ = "F" THEN GOSUB 2940
2770 IF SA$ = E$ THEN RETURN
2780 GOTO 2700
2790 REM
2800 REM SAVE CHARACTER SET
2810 REM
2820 HOME
: FI$ = NL$
2830 VTAB N0
: PRINT "SAVE CHARACTER SET"
: PRINT
2840 INPUT "=>";SA$
2850 IF SA$ = "?" THEN HOME
: GOSUB 2430
: GOTO 2820
2860 IF LEN (SA$) > L2 THEN SA$ = LEFT$ (SA$,L2)
2870 SA$ = SA$ + ".SET"
2880 AC$ = "SAVE CHARACTER SET"
: FI$ = SA$
: AD$ = "SAV"
: GOSUB 3160
2890 PRINT D$;"BSAVE ";SA$;",A$1580,L$";L1$;SL$;DR$
2900 RETURN
2910 REM
2920 REM SAVE FONT FILE
2930 REM
2940 HOME
: FI$ = NL$
2950 VTAB N0
: PRINT "SAVE FONT FILE"
: PRINT
2960 INPUT "=>";FF$
2970 IF FF$ = "?" THEN HOME
: GOSUB 2430
: GOTO 2940
2980 IF LEN (FF$) > L2 THEN FF$ = LEFT$ (FF$,L2)
2990 FF$ = FF$ + ".FNT"
3000 HOME
: VTAB N0
3010 PRINT "INITIALIZE PRINTER RAM"
3020 PRINT
3030 PRINT "WITH STANDARD CHARACTERS (";
: INVERSE
: PRINT YY$;
: NORMAL
: PRINT "/N)"
: PRINT
3040 PRINT A2$;
: GET Y$
3050 IM = C
: IF Y$ = N$ THEN IM = B
3060 POKE IR,IM
3070 AC$ = "SAVE FONT FILE"
: FI$ = FF$
: AD$ = "SAV"
: GOSUB 3160
3080 CALL DW
3090 L = PEEK (2046) + 256 * PEEK (2047)
3100 L = L + 297
3110 PRINT D$;"BSAVE ";FF$;",A$8D7,L";L;SL$;DR$
3120 RETURN
3130 REM
3140 REM CONFIRM
3150 REM
3160 HOME
: VTAB N0
3170 PRINT PR$;
: INVERSE
: PRINT RE$;
: NORMAL
: PRINT " TO ";AC$
: PRINT
3180 PRINT A2$;FI$
: PRINT
3190 VTAB N8
: HTAB F
: PRINT "(PRESS ANY OTHER KEY TO ESCAPE)";
3200 VTAB 14
: HTAB C
: PRINT A2$;
: GET Y$
3210 IF Y$ < > R$ THEN POP
: RETURN
3220 HOME
: INVERSE
: VTAB N0
3230 PRINT AD$;"ING";
3240 NORMAL
: PRINT " ";FI$
3250 RETURN
3260 REM
3270 REM INITIALIZATION
3280 REM
3290 IF PEEK (104) < > 66 THEN POKE 103,1
: POKE 104,66
: POKE 16896,B
: PRINT CHR$ (4);"RUN DMFE"
3300 ONERR GOTO 3890
3310 DIM CH$(11)
: A1$ = "=> "
: A2$ = "=>"
: B$ = "BLOAD "
: D$ = CHR$ (13) + CHR$ (4)
: DR$ = ",D1"
: E$ = "E"
: N$ = "N"
: NL$ = ""
: NN$ = " ON"
: PR$ = "PRESS "
: R$ = CHR$ (13)
: RE$ = "RETURN"
: SL$ = ",S6"
: YY$ = "Y"
3320 UN$ = CHR$ (27) + "$0"
: UD$ = CHR$ (27) + "$1"
: DF$ = CHR$ (27) + "*1" + CHR$ (65) + CHR$ (65) + CHR$ (139)
: PS$ = "PR#"
: CA$ = "CATALOG"
3330 B = 0
: C = 1
: D = 2
: E = 3
: F = 4
: K = 5
: N = 6
: P = 7
: Q = 8
: N0 = 10
: N1 = 11
: N2 = 15
: N8 = 19
: N3 = 21
: N4 = 22
: N5 = 24
3340 L2 = 26
: L1 = 30
: N9 = 32
: N6 = 40
: OF = 51
: TC = 60
: SC = 110
: N7 = 128
: BC = 130
: EC = 160
: SL = 1635
: WF = 44567
: NF = 44452
: CO = 49296
: CL = 49601
3350 CVERT = 16384
: INIT = 16750
: DW = 2048
: IR = 2508
: HK = 16782
3360 POKE WF,L2
: POKE NF,N0 + D
: POKE NF + 153,N0 + D
3370 HOME
3380 PRINT "::::::::::::::::::::::::::::::::::::::::";
: REM 40 COLONS
3390 PRINT ": :";
: REM 38 SPACES
3400 PRINT "::::::::::::::::::::::::::::::::::::::::";
: REM 40 COLONS
3410 FOR I = F TO N8
: PRINT ": :";
: NEXT
: REM 38 SPACES
3420 PRINT "::::::::::::::::::::::::::::::::::::::::"
: REM 40 COLONS
3430 VTAB D
: HD$ = " DOT MATRIX FONT EDITOR"
: GOSUB 540
3440 GOSUB 440
3450 VTAB F
: HD$ = "BY R.GLENN JONES "
: GOSUB 540
3460 VTAB N8
: HD$ = "COPYRIGHT(C) 1986 R. GLENN JONES "
: GOSUB 540
3470 FOR G = C TO 1000
: NEXT
3480 VTAB N8
: HTAB C
: CALL - 868
: VTAB N8
: HD$ = "(PRESS ANY KEY TO CONTINUE)"
: GOSUB 540
3490 WAIT - CVERT,N7
: POKE - 16368,B
: POKE N9 + D,F
: POKE N9 + E,N8 - C
3500 IF PEEK (768) < > E THEN PRINT D$;B$;"ST.FONTSET,A$300"
3510 POKE 232,B
: POKE 233,E
3520 IF PEEK (CVERT) < > N9 THEN PRINT D$;B$;"CONVERT,A$4000"
3530 IF PEEK (DW) < > 169 THEN PRINT D$;B$;"DOWNLOAD,A$800"
3540 ONERR GOTO 3890
3550 GOSUB 440
: HOME
: VTAB P
: POKE N9,D
3560 PRINT "DATA DISK SLOT =>";
: PRINT RIGHT$ (SL$,C)
3570 PRINT
3580 PRINT "DATA DISK DRIVE =>";
: PRINT RIGHT$ (DR$,C)
3590 PRINT
: PRINT PR$;
: INVERSE
: PRINT RE$;
: NORMAL
: PRINT " TO CONTINUE"
: PRINT
: PRINT "OR ANY OTHER KEY TO MODIFY VALUES"
: PRINT
3600 PRINT A2$;
: GET Y$
3610 IF Y$ = R$ THEN GOTO 3670
3620 VTAB P
: HTAB 18
: GET SL$
: PRINT SL$
: IF VAL (SL$) < C OR VAL (SL$) > P THEN GOTO 3620
3630 VTAB 9
: HTAB N8
: GET DR$
: PRINT DR$
: IF VAL (DR$) < C OR VAL (DR$) > D THEN GOTO 3630
3640 SL$ = ",S" + SL$
3650 DR$ = ",D" + DR$
3660 GOTO 3540
3670 CALL INIT
3680 HOME
: VTAB N0
: INVERSE
: PRINT "B";
: NORMAL
: PRINT "EGIN OR ";
: INVERSE
: PRINT E$;
: NORMAL
: PRINT "DIT"
: PRINT
3690 PRINT A2$;
: GET ED$
3700 HOME
: VTAB N0
: INVERSE
3710 PRINT N$;
: NORMAL
: PRINT "ORMAL OR ";
: INVERSE
: PRINT E$;
: NORMAL
: PRINT "XTENDED CHARACTER SET"
: PRINT
3720 PRINT A2$;
: GET CS$
3730 CS = 127
: L1$ = "480"
: IF CS$ = E$ THEN CS = 255
: L1$ = "A80"
3740 IF ED$ = E$ THEN GOSUB 2580
3750 HOME
: SCALE= C
: ROT= C
: HCOLOR= E
3760 CR = C
: DOT = D
: SMDOT = E
: CY = TC
: CX = SC
3770 CD$ = CHR$ (73) + CHR$ (10) + CHR$ (74) + CHR$ (11) + CHR$ (75) + CHR$ (77) + CHR$ (32) + CHR$ (13) + CHR$ (3) +
CHR$ (6) + CHR$ (43) + CHR$(45) + CHR$ (7) + CHR$ (19) + CHR$ (12) + CHR$ (16) + CHR$ (64) + CHR$ (20) + CHR$ (4) +
CHR$ (27)
3780 GOSUB 490
3790 VTAB N3
: HTAB C
: INVERSE
3800 PRINT "EDITING ASC =>";
: NORMAL
: PRINT SPC( 14);
: INVERSE
: PRINT "DOWNLOAD =>"
: PRINT "PROPORTIONAL=>";
: NORMAL
: PRINT SPC( 14);
: INVERSE
: PRINT "DESCENDER=>"
: NORMAL
3810 POKE 230,N9
: CALL 62450
: HGR
3820 HPLOT B,B TO B,159 TO 279,159 TO 279,B TO B,B
3830 HPLOT 108,53 TO 108,134 TO 169,134 TO 169,53 TO 108,53
3840 GOSUB 1340
3850 GOTO 120
3860 REM
3870 REM ONERR ROUTINE
3880 REM
3890 HOME
: VTAB N5
: HTAB C
: INVERSE
3900 ER = PEEK (222)
: CALL 1002
3910 IF ER = F THEN PRINT "DISKETTE WRITE PROTECTED";
3920 IF ER = N THEN PRINT "FILE NOT FOUND";
3930 IF ER = P THEN PRINT "VOLUME MISMATCH";
3940 IF ER = Q THEN PRINT "DISKETTE I/O ERROR";
3950 IF ER = 9 THEN PRINT "DISKETTE FULL";
3960 IF ER = N0 THEN PRINT "FILE LOCKED";
3970 IF ER = N1 THEN PRINT "DOS SYNTAX ERROR";
: NORMAL
: PRINT CHR$ (7)
: FOR G = C TO 1500
: NEXT
: Y$ = " "
: GOTO 4020
3980 IF ER = N1 + D THEN PRINT "FILE TYPE MISMATCH";
3990 IF ER = 77 THEN PRINT "OUT OF MEMORY";
: TEXT
: END
4000 PRINT CHR$ (7);
: FOR I = C TO 1500
: NEXT
4010 HOME
: VTAB N0
: NORMAL
: PRINT PR$;
: INVERSE
: PRINT RE$;
: NORMAL
: PRINT " TO TRY AGAIN =>";
: GET Y$
4020 GOSUB 490
: HOME
: GOSUB 440
: HOME
4030 IF Y$ < > R$ THEN POKE 216,B
: GOTO 3540
4040 ONERR GOTO 3890
4050 RESUME
4060 REM
4070 REM QUIT
4080 REM
4090 HOME
: VTAB N5 - C
: HTAB C
4100 PRINT PR$;
: INVERSE
: PRINT RE$;
: NORMAL
: PRINT " TO ";
: INVERSE
: PRINT "QUIT"
: NORMAL
: PRINT "ANY OTHER KEY TO CONTINUE =>";
4110 VTAB N5
: HTAB 29
: GET Y$
4120 IF Y$ < > R$ THEN HOME
: RETURN
4130 POKE WF,29
: POKE NF,22
: POKE NF + 153,21
4140 TEXT
: HOME
: END
INT "ANY OTHER KEY TO CONTINUE =>";
4110 VTAB N5 : HTAB 29 : GET Y$
4120 IF Y$ < > R$ THEN HOME : RETURN
4130 POKE WF,29 : POKE NF,22
4140 TEXT : HOME : END